// Podstawowe operacje na acuchach

#import <Foundation/Foundation.h>

int main (int argc, char *argv[])
{
    NSAutoreleasePool  *pool = [[NSAutoreleasePool alloc] init];
    NSString  *str1 = @"To jest acuch A";
    NSString  *str2 = @" To jest acuch B";
    NSString  *res;
    NSComparisonResult  compareResult;

    // Liczenie znakw

    NSLog (@"Dugo acucha str1: %lu", [str1 length]);

    // Kopiowanie jednego acucha do innego

    res = [NSString stringWithString: str1];
    NSLog (@"Kopia: %@", res);

    // Skopiowanie jednego acucha na koniec drugiego

    str2 = [str1 stringByAppendingString: str2];
    NSLog (@"Konkatenacja: %@", str2);

    // Sprawdzenie, czy dwa acuchy s rwne

    if ([str1 isEqualToString: res] == YES)
        NSLog (@"str1 == res");
    else
        NSLog (@"str1 != res");

    // Sprawdzenie, czy jeden acuch jest <, ==, czy > od drugiego

    compareResult = [str1 compare: str2];

    if  (compareResult == NSOrderedAscending)
        NSLog (@"str1 < str2");
    else if (compareResult == NSOrderedSame)
        NSLog (@"str1 == str2");
    else  // Musi by NSOrderedDescending
        NSLog (@"str1 > str2");

    // Konwersja na wielkie litery

    res = [str1 uppercaseString];
    SLog (@"Konwersja na wielkie litery: %s", [res UTF8String]);

    // Konwersja na mae litery

    res = [str1 lowercaseString];
    NSLog (@"Konwersja na mae litery: %@", res);

    NSLog (@"Oryginalny acuch: %@", str1);

    [pool drain];
    return 0;
}